package com.shangyueshang.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.YearMonth;

/**
 * @author: JokeyZheng
 * @email: zhengjingfeng@ruqimobility.com
 * @created: 2023/5/16 11:24
 * @version: v1.0.0
 *
 * <p>商品仓储费用统计表</p>
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class GoodsStorageFee extends BaseModel implements BaseShopSkuKey, Serializable {
	/**
	 * 店铺名称
	 */
	private String shop;
	
	/**
	 * 统计月份
	 */
	private YearMonth tradeMonth;
	
	/**
	 * 自有SKU
	 */
	private String sku;
	
	/**
	 * 平台asin
	 */
	private String asin;
	
	/**
	 * 平台sku
	 */
	private String fnSku;
	
	/**
	 * 数量
	 */
	@TableField(exist = false)
	private Integer quantity;
	
	/**
	 * 仓库简码
	 */
	private String fulfillmentCenter;
	
	/**
	 * 最长边
	 */
	private BigDecimal longestSide;
	
	/**
	 * 中边
	 */
	private BigDecimal medianSide;
	
	/**
	 * 最短边
	 */
	private BigDecimal shortestSide;
	
	/**
	 * 计量单位
	 */
	private String measurementUnits;
	
	/**
	 * 重量
	 */
	private BigDecimal weight;
	
	/**
	 * 重量单位
	 */
	private String weightUnits;
	
	/**
	 * 商品体积
	 */
	private BigDecimal itemVolume;
	
	/**
	 * 体积单位
	 */
	private String volumeUnits;
	
	/**
	 * 商品尺寸等级
	 */
	private String productSizeTier;
	
	/**
	 * 平均手头数量
	 */
	private BigDecimal averageQuantityOnHand;
	
	/**
	 * 待移除的平均数量
	 */
	private BigDecimal averageQuantityPendingRemoval;
	
	/**
	 * 预估总商品体积
	 */
	private BigDecimal estimatedTotalItemVolume;
	
	/**
	 * 存储利用率
	 */
	private BigDecimal storageUtilizationRatio;
	
	/**
	 * 存储利用率单位
	 */
	private String storageUtilizationRatioUnits;
	
	/**
	 * 基准利率
	 */
	private BigDecimal baseRate;
	
	/**
	 * 使用附加费率
	 */
	private BigDecimal utilizationSurchargeRate;
	
	/**
	 * 货币单位
	 */
	private String currency;
	
	/**
	 * 预估月度仓储费
	 */
	private BigDecimal estimatedMonthlyStorageFee;
	
	/**
	 * 危险品仓储类型
	 */
	private String dangerousGoodsStorageType;
	
	/**
	 * 是否有资格享受库存折扣, N-否 Y-是
	 */
	private String eligibleForInventoryDiscount;
	
	/**
	 * 是否符合库存折扣条件, N-否 Y-是
	 */
	private String qualifiesForInventoryDiscount;
	
	/**
	 * 奖励费总额
	 */
	private BigDecimal totalIncentiveFeeAmount;
	
	/**
	 * 细目奖励费总额
	 */
	private String breakdownIncentiveFeeAmount;
	
	/**
	 * 平均客户订单数量
	 */
	private BigDecimal averageQuantityCustomerOrders;
	
	@Override
	public String shopSkuKey() {
		return this.shop + "-" + this.sku;
	}
}
